// TODO: java版临时注释 默认值优先级低
// package com.inspur.edp.bef.dtgenerator.core.beActionAssembler.defaultValue;
//
// import com.inspur.edp.bef.api.action.assembler.INodeDefaultValueProcessor;
// import com.inspur.edp.bef.dtgenerator.core.BefCoreGenCtx;
// import com.inspur.edp.caf.generator.baseInfo.ParameterInfo;
// import com.inspur.edp.caf.generator.baseInfo.TypeInfo;
// import com.inspur.edp.caf.generator.method.ClassMethodGenerator;
// import com.inspur.edp.cef.generator.overall.Utils;
// import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
//
// public class DefaultValue_GetNodeProcessorMethodGenerator extends ClassMethodGenerator {
//  private static final String methodName = "GetNodeDefaultValueProcessor";
//  private static final String nodeCodeParName = "nodeCode";
//
//  // region Basic
//  private BefCoreGenCtx coreGenCtx;
//
//  public DefaultValue_GetNodeProcessorMethodGenerator(BefCoreGenCtx coreGenCtx) {
//    this.coreGenCtx = coreGenCtx;
//  }
//
//  @Override
//  protected boolean getIsOverride() {
//    return true;
//  }
//
//  @Override
//  protected java.util.ArrayList<ModifierKeyword> getAccessModifiers() {
//    return new java.util.ArrayList<ModifierKeyword>(
//        java.util.Arrays.asList(new ModifierKeyword[] {ModifierKeyword.PUBLIC_KEYWORD}));
//  }
//
//  @Override
//  protected String getMethodName() {
//    return methodName;
//  }
//
//  @Override
//  protected java.util.ArrayList<ParameterInfo> getParameterCollection() {
//    ParameterInfo tempVar = new ParameterInfo();
//    tempVar.setParamName(nodeCodeParName);
//    tempVar.setParamType(com.inspur.edp.cef.generator.overall.Utils.createTypeInfo(String.class));
//    return new java.util.ArrayList<ParameterInfo>(
//        java.util.Arrays.asList(new ParameterInfo[] {tempVar}));
//  }
//
//  @Override
//  protected TypeInfo getReturnType() {
//    return Utils.createTypeInfo(INodeDefaultValueProcessor.class);
//  }
//
//  // endregion
//
//  // region MethodBody
//  //
//  //        public abstract void  setValue(string nodeCode, IEntityData entitydata);
//  //        {
//  //            switch (nodeCode)
//  //            {
//  //                case "Root":
//  //                    SetValueCore(nodeCode, entitydata, SetValue_Root);
//  //                    break;
//  //                default:
//  //                    throw new ArgumentOutOfRangeException("nodeCode", nodeCode, "invalid
//  // nodeCode");
//  //            }
//  //        }
//  //
//  @Override
//  protected Block buildMethodBody() {
//    var nodes = coreGenCtx.getBeGenCtx().getBE().GetAllNodes();
//    java.util.ArrayList<SwitchSectionSyntax> switchSections =
//        new java.util.ArrayList<SwitchSectionSyntax>(nodes.size() + 1);
//    for (var node : nodes) {
//      switchSections.add(
//          SyntaxFactory.SwitchSection()
//              .WithLabels(
//                  SyntaxFactory.<SwitchLabelSyntax>SingletonList(
//                      SyntaxFactory.CaseSwitchLabel(
//                          SyntaxFactory.LiteralExpression(
//                              SyntaxKind.StringLiteralExpression,
//                              SyntaxFactory.Literal(node.getCode())))))
//              .WithStatements(
//                  SyntaxFactory.<StatementSyntax>SingletonList(
//                      SyntaxFactory.ReturnStatement(
//                          SyntaxFactory.ObjectCreationExpression(
//                                  SyntaxFactory.IdentifierName(
//                                      NodeDefaultValueProcessorGenerator.GetItemName(node)))
//                              .WithArgumentList(SyntaxFactory.ArgumentList())))));
//    }
//    switchSections.add(
//        SyntaxFactory.SwitchSection()
//            .WithLabels(
//
// SyntaxFactory.<SwitchLabelSyntax>SingletonList(SyntaxFactory.DefaultSwitchLabel()))
//            .WithStatements(
//                SyntaxFactory.<StatementSyntax>SingletonList(
//                    SyntaxFactory.ThrowStatement(
//                        SyntaxFactory.ObjectCreationExpression(
//                                TypeUtils.GetTypeSyntax(ArgumentOutOfRangeException.class))
//                            .WithArgumentList(
//                                SyntaxFactory.ArgumentList(
//                                    SyntaxFactory.<ArgumentSyntax>SeparatedList(
//                                        new SyntaxNodeOrToken[] {
//                                          SyntaxFactory.Argument(
//                                              SyntaxFactory.LiteralExpression(
//                                                  SyntaxKind.StringLiteralExpression,
//                                                  SyntaxFactory.Literal(nodeCodeParName))),
//                                          SyntaxFactory.Token(SyntaxKind.CommaToken),
//                                          SyntaxFactory.Argument(
//                                              SyntaxFactory.IdentifierName(nodeCodeParName)),
//                                          SyntaxFactory.Token(SyntaxKind.CommaToken),
//                                          SyntaxFactory.Argument(
//                                              SyntaxFactory.LiteralExpression(
//                                                  SyntaxKind.StringLiteralExpression,
//                                                  SyntaxFactory.Literal(
//                                                      "invalid " + nodeCodeParName)))
//                                        })))))));
//
//    return SyntaxFactory.Block(
//        SyntaxFactory.<StatementSyntax>SingletonList(
//            SyntaxFactory.SwitchStatement(SyntaxFactory.IdentifierName(nodeCodeParName))
//                .WithSections(
//                    SyntaxFactory.<SwitchSectionSyntax>List(
//                        switchSections.toArray(new SwitchSectionSyntax[] {})))));
//  }
//
//  // endregion
// }
